class Solution:
    def maxLength(self,arr):
        dict = {}
        res = 0
        # 首位如果就是无重复的话长度要+1但是后面不需要加所以start起步的时候设置为-1
        start = -1
        for end in range(len(arr)):
            if arr[end] in dict:
                start = max(start, dict[arr[end]])
            dict[arr[end]] = end
            # res用来记录当前的最大值啊
            res = max(res, end - start)
        return res
arr = "abcabcbb"
# arr = "aab"
print(Solution().maxLength(arr))
'''
不能用else来添加end，end需要实时更新，start则是重复的时候更新
'''